/**
 * fs.stat(path, callback) 方法用于获取文件的状态信息
 * 参数1: path 文件路径 必选参数
 * 参数2: callback 回调函数, 获取文件状态信息后执行的回调函数 必选参数
 * stats.isFile()  如果是文件返回true, 否则返回false
 * stats.isDirectory()  如果是目录返回true, 否则返回false
 * stats.isSymbolicLink()  如果是软链接返回true, 否则返回false
 * stats.size  返回文件的大小, 单位是字节, 如果是目录则返回0
 *    1. 1024字节 = 1KB,1024KB = 1MB,1024MB = 1GB
 *    2. 其中英文字母和数字一般占用1个字节, 而一个汉字一般占用3个字节
 */

const fs = require('fs');
const path = require('path');
// fs.stat(path.join(__dirname, 'test.txt'), (err, stats) => {
//     if (err) {
//         console.log('获取文件状态信息失败', err);
//     } else {
//         console.log('文件状态信息:>>> ', stats, 
//         stats.isFile(), 
//         stats.isDirectory(), 
//         stats.isSymbolicLink(),
//         stats.size);
//     }
// });
//  fsPromises.stat(path) 方法用于获取文件的状态信息, 返回一个 Promise 对象
async function statFile() {
    try {
        const stats = await fs.promises.stat(path.join(__dirname, 'test.txt'));
        console.log('fs.promises文件状态信息:>>> ', stats, 
        stats.isFile(), 
        stats.isDirectory(), 
        stats.isSymbolicLink(),
        stats.size);
    } catch (error) {
        console.log('获取文件状态信息失败', error);
    }
}
statFile()